package com.zlx.module_base.base_api.module;

import androidx.lifecycle.LiveData;

import com.zlx.module_base.base_api.res_data.AgreementBean;
import com.zlx.module_base.base_api.res_data.BaseBean;
import com.zlx.module_base.base_api.res_data.BuyChargeRulesBean;
import com.zlx.module_base.base_api.res_data.BuyChargeRulesBody;
import com.zlx.module_base.base_api.res_data.ChargeRulesBean;
import com.zlx.module_base.base_api.res_data.CmfIssueFeedbackBean;
import com.zlx.module_base.base_api.res_data.DynamicsLabelBean;
import com.zlx.module_base.base_api.res_data.HomeBannerBean;
import com.zlx.module_base.base_api.res_data.HomeLableListBean;
import com.zlx.module_base.base_api.res_data.HomeLinkBean;
import com.zlx.module_base.base_api.res_data.HomeRollAnnouncementBean;
import com.zlx.module_base.base_api.res_data.HomeSearchBean;
import com.zlx.module_base.base_api.res_data.RankingBean;
import com.zlx.module_base.base_api.res_data.RewardByWalletBody;
import com.zlx.module_base.base_api.res_data.VideoBean;
import com.zlx.module_base.base_api.res_data.VideoLikeListBean;
import com.zlx.module_network.bean.ApiResponse;

import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.Query;

public interface HomeApi {

    /**
     * 排行榜
     *
     * @type type 1 日榜 2周榜 3月榜复制
     */
    @GET("appapi/Home/getRanking")
    LiveData<ApiResponse<RankingBean>> getRanking(
            @Query("type") String type
    );

    /**
     * 首页轮播图
     */
    @GET("appapi/Home/getHomeBannerList")
    LiveData<ApiResponse<HomeBannerBean>> getHomeBannerList(
            @Query("type") String type
    );

    /**
     * 视频列表
     * token
     * p
     * type1 1 长视频 2 短视频
     * state 视频列表种类 1 最新 2 收费
     * id 频道id (频道筛选时使用)
     */
    @GET("appapi/video/getVideoList")
    LiveData<ApiResponse<VideoBean>> getVideoList(
            @Header("token") String token,
            @Query("p") String page,
            @Query("type1") String type1,
            @Query("state") String state,
            @Query("id") String id,
            @Query("isSelf") String isSelf,
            @Query("isMe") String isMe,
            @Query("uid") String uid,
            @Query("isDz") String isDz,
            @Query("suid") String suid,
            @Query("checkStatus") String checkStatus
    );

    /**
     * 关注视频
     * token
     * p
     * type1 1 长视频 2 短视频
     * state 视频列表种类 1 最新 2 收费 3最热
     * id 频道id (频道筛选时使用)
     */
    @GET("appapi/video/getFollowVideo")
    LiveData<ApiResponse<VideoBean>> getFollowVideo(
            @Header("token") String token,
            @Query("p") String page,
            @Query("type1") String type1,
            @Query("state") String state
    );

    /**
     * 动态标签列表
     */
    @GET("appapi/Home/getDynamicsLabel")
    LiveData<ApiResponse<DynamicsLabelBean>> getDynamicsLabel(
            @Header("token") String token
    );

    /**
     * 首页滚动公告
     */
    @GET("appapi/getHomeRollAnnouncement")
    LiveData<ApiResponse<HomeRollAnnouncementBean>> getHomeRollAnnouncement(
    );

    /**
     * 首页搜索标签
     */
    @GET("appapi/Home/getHomeLableList")
    LiveData<ApiResponse<HomeLableListBean>> getHomeLableList(
    );

    /**
     * 首页关键词搜索
     */
    @GET("appapi/Home/homeSearch")
    LiveData<ApiResponse<HomeSearchBean>> homeSearch(
            @Query("p") String page,
            @Query("keyWord") String keyWord
    );

    /**
     * 获取协议
     */
    @GET("appapi/getAgreement")
    LiveData<ApiResponse<AgreementBean>> getAgreement(
            @Query("type") String type
    );

    /**
     * 会员套餐列表
     */
    @GET("appapi/vip/getChargeRules")
    LiveData<ApiResponse<ChargeRulesBean>> getChargeRules(
            @Header("token") String token
    );

    /**
     * 获取首页链接
     */
    @GET("appapi/getHomeLink")
    LiveData<ApiResponse<HomeLinkBean>> getHomeLink(
    );

    /**
     * 余额购买会员
     */
    @POST("appapi/vip/BuyChargeRules")
    LiveData<ApiResponse<BuyChargeRulesBean>> BuyChargeRules(
            @Header("token") String token,
            @Body BuyChargeRulesBody buyChargeRulesBody
    );

    /**
     * 视频点赞列表
     */
    @GET("appapi/video/getVideoLikeList")
    LiveData<ApiResponse<VideoLikeListBean>> getVideoLikeList(
            @Header("token") String token,
            @Query("type1") String type,
            @Query("p") String p
    );

    /**
     * 视频评论列表
     */
    @GET("appapi/video/getVideoComment")
    LiveData<ApiResponse<VideoLikeListBean>> getVideoComment(
            @Header("token") String token,
            @Query("type1") String type,
            @Query("p") String p
    );

    /**
     * 用钱包打赏动态
     */
    @POST("appapi/vip/RewardByWallet")
    LiveData<ApiResponse<BaseBean>> RewardByWallet(
            @Header("token") String token,
            @Body RewardByWalletBody rewardByWalletBody
    );

    /**
     * 查看常见问题
     */
    @GET("appapi/cmfIssueFeedback/cmfIssueFeedback/list")
    LiveData<ApiResponse<CmfIssueFeedbackBean>> cmfIssueFeedback(
//            @Body CmfIssueFeedbackBody cmfIssueFeedbackBody
            @Query("feedbackType") String feedbackType,
            @Query("pageNo") String pageNo,
            @Query("pageSize") String pageSize
    );

}
